package com.shujia.scala

class Demo01HelloWorldScala {
  /**
   * def关键字，表示定义一个方法
   * main 方法名称
   * args 参数名称
   * Array[String] 字符串数组，参数类型
   * Unit 没有返回值
   * {} 函数体
   */
  // 因为Scala没有static关键字，所以Scala代码在class中定义的方法都是普通的成员方法
  // main方法是特殊的方法，表示程序入口，需要放在object中定义
  //  def main(args: Array[String]): Unit = {
  //    System.out.println("HelloWorldScala!")
  //  }

  def normalMain():Unit = {
    println("Hello World Scala Normal Main! ")
  }
}

// 通过object可以定义类对象
// 在object中定义的所有方法都是静态的
object Demo01HelloWorldScala {
  def staticMain(): Unit = {
    println("Hello World Scala Static Main!")
  }

  def main(args: Array[String]): Unit = {
    System.out.println("HelloWorldScala!")
    // 通过类对象. 可以直接调用定义在object中的静态方法
    Demo01HelloWorldScala.staticMain()
    // 通过类的对象可以调用定义在class中普通成员方法
    new Demo01HelloWorldScala().normalMain()

    val zs = new Demo13ScalaCLass01("001", "zs", 20)
    zs.getName()
  }
}